Just for Fun
Authors: Linus Torvalds, David Diamond, Linus Torvalds, David Diamond
Overview
This book, Just for Fun, tells the story of Linux, from its humble beginnings as a hobby project in my Helsinki bedroom to its worldwide success as a leading operating system. It’s written for anyone interested in the history of technology, the open-source movement, or just a good, quirky story. The book is particularly relevant today, as open source becomes increasingly important in software development and beyond. I share my personal journey, from my early fascination with computers and programming to the challenges and triumphs of building and maintaining Linux. I explore the technical underpinnings of the operating system, including key decisions and milestones in its development. I also explain my management style, which relies on trust, community, and a “benevolent dictator” approach. I share my views on intellectual property, arguing for a more balanced approach that encourages both innovation and sharing. I offer my own theory about the “meaning of life,” emphasizing the importance of survival, social order, and, most of all, fun. And because the book wouldn’t be complete without a bit of controversy, I discuss my “flame wars” with Andrew Tanenbaum, the creator of Minix. Finally, I explore the future of technology, focusing on how entertainment will become the primary driver of innovation and market success.
Book Outline
1. Preface: The Meaning of Life I (Sex, War, Linux)
I explain my “meaning of life” theory, which boils down to three motivational factors: survival, social order, and entertainment. Everything progresses in that order, and there’s nothing after entertainment.
Key concept: My heart was in my throat when he was growing up: How on Earth was he going to meet any nice girls that way?
2. Birth of a NERD
I describe my childhood in Finland, highlighting my “nerdy” appearance and lack of social graces. Despite this, I was good at math and physics and generally did okay in school.
Key concept: I was an ugly child.
3.
My early experiences with computers, particularly my grandfather’s Commodore VIC-20, sparked my interest in programming. I found joy in making the computer do things, starting with simple BASIC programs.
Key concept: It’s the greatest feeling.
4.
Growing up in Finland, with its long, dark winters, further fueled my interest in computers. I spent hours programming, finding it a welcome indoor activity.
Key concept: Everything is in English and it is necessary to decode the language.
5.
My high school years were marked by good grades in math and science, but less interest in other subjects like physical education. My interest in computers continued to grow.
Key concept: And I basically sat in front of a computer for four years.
6.
My first year of university was a success, academically speaking. I majored in computers and joined Spektrum, a social organization for Swedish-speaking science students.
Key concept: My first year at university was actually quite productive.
7.
A further look at life in Finland, discussing the culture of silence, the prevalence of saunas, and the importance of mobile phones.
Key concept: By January you sort of wander around in a shadowy daze, if you choose to go outside.
8.
I share my family history, which is full of journalists, including my parents and sister. I also discuss my grandfathers, one a statistician and the other a journalist and poet.
Key concept: Journalists are everywhere in my family.
9. Birth of an OPERATING SYSTEM
My progression through different computers, from the VIC-20 to the Sinclair QL, shaped my programming skills and understanding of operating systems.
Key concept: My years are marked by computers.
10.
I discuss the Sinclair QL and the joy of programming on it, particularly the ability to write and modify my own programs and tools.
Key concept: It’s the greatest feeling.
11.
After finishing my army service, I found myself without a compelling computer project. This lack of motivation led me back to university, where I discovered Unix and the book that would change my life: Operating Systems: Design and Implementation.
Key concept: Lack a project and you lack enthusiasm.
12.
My fascination with Unix, and how it led me to purchase a 386 PC and begin developing Linux, initially as a terminal emulator and eventually as a replacement for Minix.
Key concept: Time for some serious flamefesting!
13.
My request for POSIX standard documentation on a newsgroup, and how that small act marked the beginning of Linux as a public project.
Key concept: Hello Netlanders,\nDue to a project I’m working on (in minix), I’m interested in the posix standard definition. Could somebody please point me to a (preferably) machine-readable format of the latest posix rules?
14.
The early development of Linux, the challenges, the decision to make it freely available (under the GPL), and my debate with Andrew Tanenbaum about Minix vs. Linux.
Key concept: “Portability is for people who cannot write new programs”
15.
My philosophy on programming and its similarities to physics and mathematics. The creative process of building new worlds within the computer.
Key concept: The Beauty of Programming
16.
My time in the Finnish army, serving as a fire controller, and how that experience, while not particularly enjoyable at the time, gave me something to talk about for the rest of my life.
Key concept: It seemed like the perfect time to join the army, which I knew I would have to do anyway.
17.
The technical details of developing the terminal emulator, working at the bare hardware level, and how it gradually evolved into an operating system.
Key concept: So I began a project to create my own terminal emulation program.
18.
The initial release of Linux (version 0.01) and the limited interest it received at first. The importance of feedback in motivating me to continue development.
Key concept: I don’t think more than one or two people ever checked it out.
19.
How Linux continued to evolve, thanks in part to my accidental deletion of my Minix partition. The growing community of Linux users and the decision to adopt the GPL.
Key concept: Honest: I didn’t want to ever release it under the name Linux because it was too egotistical.
20. King of the BALL
The public release of Linux 1.0 at the University of Helsinki and the increasing media attention. My continued discomfort with public speaking.
Key concept: Time for some serious flamefesting!
21.
My decision to leave academia and join Transmeta. Balancing Linux development with family life (and a new baby).
Key concept: The computer cost nearly $2,000.
22.
The growth of Linux and its increasing adoption by corporations, including IBM and Oracle. My thoughts on the open source philosophy and its implications.
Key concept: I’m of two minds when it comes to patents.
23.
The story of how Tux, the penguin, became the Linux mascot.
Key concept: The penguin was my idea.
24. Intellectual Property
My take on intellectual property. While acknowledging its importance, I express concern about the potential downsides and misuses, especially in the digital age.
Key concept: What part of ten million dollars don’t you understand?
25. An End to Control
A look at how control, driven by greed, can stifle innovation and hurt businesses. Examples from various industries, including cell phones and music.
Key concept: Success is about quality and about giving folks what they want.\nIt’s not about trying to control people.
26. The Amusement Ride Ahead
A look at the future of technology, focusing on the importance of entertainment and how it will drive technological innovation.
Key concept: Is there anything more obnoxious than business prognosticators?
27. Why Open Source Makes Sense
I make the case for why open source makes sense, and discuss its potential impact.
Key concept: IBM is a company with a history of screwing people over.
28. Fame and Fortune
How fame and modest fortune have affected me and my work. Reflections on the continued evolution of Linux and myself.
Key concept: What about the burden of fame?
29.
The challenges of fame and how people often misinterpret or misunderstand me. The importance of not letting others impose their views or beliefs on you.
Key concept: People take me too seriously.
30. The Meaning of Life II
My theory about the meaning of life revisited, this time presented as a framework for understanding how societies and technology evolve.
Key concept: So, my argument went, in order to understand the evolution of society, you have to understand what really motivates people.
Essential Questions
1. How did Linux begin, and what was the initial motivation behind its creation?
The story of Linux started with my own needs and the desire for something better than the available alternatives, primarily Minix. It wasn’t a grand plan to change the world, but a series of small, incremental steps driven by personal interest and the technical challenges. The significance is that groundbreaking innovation often starts small, driven by individual passion rather than corporate strategy.
2. What is my management style for Linux, and how does it differ from traditional models?
My management approach to Linux is about decentralization, trust, and letting the best ideas win, regardless of their source. This stands in stark contrast to the traditional, hierarchical corporate structures. The broader implication is that trusting your community and valuing individual contributions can lead to unexpectedly great results.
3. What is my perspective on intellectual property, and what are its implications for the future of software?
Intellectual property should be about promoting creativity and innovation, not about control and profit. I’m wary of misuses of intellectual property laws that stifle innovation and limit consumer freedom. This has significant implications for the future of technology and open source, advocating for a more ethical and community-driven development model.
4. What is my “theory of life”, and how does it relate to the development of both society and technology?
I believe that “survival, social order, and entertainment” are the primary motivational factors driving human behavior and progress. This framework offers a unique lens through which to view both technological innovation and societal development. It challenges traditional assumptions about progress, suggesting that fun and entertainment are not frivolous pursuits, but are in fact essential aspects of what makes us human.
5. How do I reconcile my views on open source with the increasing commercialization of Linux?
While I acknowledge the importance of commercialization for spreading open source and making it sustainable, my primary focus has always been on the technology itself and the joy of creation. The significance is that passion, not profit, is the driving force behind true innovation.
1. How did Linux begin, and what was the initial motivation behind its creation?
The story of Linux started with my own needs and the desire for something better than the available alternatives, primarily Minix. It wasn’t a grand plan to change the world, but a series of small, incremental steps driven by personal interest and the technical challenges. The significance is that groundbreaking innovation often starts small, driven by individual passion rather than corporate strategy.
2. What is my management style for Linux, and how does it differ from traditional models?
My management approach to Linux is about decentralization, trust, and letting the best ideas win, regardless of their source. This stands in stark contrast to the traditional, hierarchical corporate structures. The broader implication is that trusting your community and valuing individual contributions can lead to unexpectedly great results.
3. What is my perspective on intellectual property, and what are its implications for the future of software?
Intellectual property should be about promoting creativity and innovation, not about control and profit. I’m wary of misuses of intellectual property laws that stifle innovation and limit consumer freedom. This has significant implications for the future of technology and open source, advocating for a more ethical and community-driven development model.
4. What is my “theory of life”, and how does it relate to the development of both society and technology?
I believe that “survival, social order, and entertainment” are the primary motivational factors driving human behavior and progress. This framework offers a unique lens through which to view both technological innovation and societal development. It challenges traditional assumptions about progress, suggesting that fun and entertainment are not frivolous pursuits, but are in fact essential aspects of what makes us human.
5. How do I reconcile my views on open source with the increasing commercialization of Linux?
While I acknowledge the importance of commercialization for spreading open source and making it sustainable, my primary focus has always been on the technology itself and the joy of creation. The significance is that passion, not profit, is the driving force behind true innovation.
Key Takeaways
1. Focus on core functionality and simplicity in design.
My focus on core functionality and simplicity in Linux was key to its early adoption and success. People were drawn to its clean design and lack of “bloat” compared to other operating systems. This focus on the essence of what an operating system should do resonated with users and made it a compelling alternative to the existing options.
Practical Application:
In product design, prioritize core functionality and user experience over unnecessary features. Focus on what the user truly wants to achieve with the product, not what you think they need. Use feedback to iteratively improve the product, ensuring that it evolves to meet changing demands.
2. Embrace community and trust your team.
The success of Linux highlights the power of community-driven development. My “lazy” or rather “benevolent dictator” approach to managing the project enabled others to take ownership and contribute their expertise. This decentralized model allowed the project to grow organically and adapt to changing needs far more effectively than a traditional, top-down approach.
Practical Application:
When managing a team, trust your developers and give them the autonomy to make decisions. Create a clear vision and goals, but then step back and let the team find its own way to achieve them. Don’t micromanage or impose unnecessary rules. Trusting your community brings ownership and therefore the best results.
3. Focus on enabling, not controlling, users.
I believe that technology should be about enabling users to achieve their goals, not about controlling them. The success of Linux, and the rise of entertainment-focused devices like the PlayStation 2, illustrates that technology should be about enabling users to achieve their goals, not about controlling them. Technology must first and foremost be useful, then it organically evolves toward entertainment.
Practical Application:
When building any technology product, whether it be a new mobile app or a complex AI system, prioritizing the user experience above all else is crucial for success. Understand what truly motivates users to engage with your product and focus on delivering value in a seamless and intuitive way. Prioritize usefulness, as entertainment naturally follows. This applies to AI and machine learning, as it does anything else.
4. Embrace experimentation and be open to new ideas.
Linux started as a small personal project and evolved into something much bigger than I ever imagined. My willingness to experiment and embrace new challenges was crucial to its development. In the same way, open-mindedness and a willingness to push boundaries are essential in AI, where curiosity and serendipity often lead to breakthrough innovations.
Practical Application:
In any project, be open to new challenges and ideas. Don’t be afraid to experiment and push the boundaries of what’s possible. If you stumble upon something interesting, see where it goes! This applies especially to AI, where new advancements are being made all the time, and the field is constantly evolving.
5. Be mindful of the ethical implications of technology.
My skepticism towards some applications of technology, especially those driven by greed or control, underscores the importance of ethical considerations in technology development. The development of ethical AI should be driven not by greed or profit, but by a desire to create something beneficial for society as a whole. AI should be open and inclusive, allowing for diverse perspectives and participation. This is similar to the open-source model in software development, which has proven to be a highly effective way to create high-quality, innovative products.
Practical Application:
As AI becomes increasingly pervasive in our lives, it’s critical to ensure that it serves humanity’s best interests. Avoid using AI to manipulate or control individuals or exert undue influence. Foster transparency and collaboration to avoid potential misuses of technology, and ensure that everyone can participate and contribute to its development.
1. Focus on core functionality and simplicity in design.
My focus on core functionality and simplicity in Linux was key to its early adoption and success. People were drawn to its clean design and lack of “bloat” compared to other operating systems. This focus on the essence of what an operating system should do resonated with users and made it a compelling alternative to the existing options.
Practical Application:
In product design, prioritize core functionality and user experience over unnecessary features. Focus on what the user truly wants to achieve with the product, not what you think they need. Use feedback to iteratively improve the product, ensuring that it evolves to meet changing demands.
2. Embrace community and trust your team.
The success of Linux highlights the power of community-driven development. My “lazy” or rather “benevolent dictator” approach to managing the project enabled others to take ownership and contribute their expertise. This decentralized model allowed the project to grow organically and adapt to changing needs far more effectively than a traditional, top-down approach.
Practical Application:
When managing a team, trust your developers and give them the autonomy to make decisions. Create a clear vision and goals, but then step back and let the team find its own way to achieve them. Don’t micromanage or impose unnecessary rules. Trusting your community brings ownership and therefore the best results.
3. Focus on enabling, not controlling, users.
I believe that technology should be about enabling users to achieve their goals, not about controlling them. The success of Linux, and the rise of entertainment-focused devices like the PlayStation 2, illustrates that technology should be about enabling users to achieve their goals, not about controlling them. Technology must first and foremost be useful, then it organically evolves toward entertainment.
Practical Application:
When building any technology product, whether it be a new mobile app or a complex AI system, prioritizing the user experience above all else is crucial for success. Understand what truly motivates users to engage with your product and focus on delivering value in a seamless and intuitive way. Prioritize usefulness, as entertainment naturally follows. This applies to AI and machine learning, as it does anything else.
4. Embrace experimentation and be open to new ideas.
Linux started as a small personal project and evolved into something much bigger than I ever imagined. My willingness to experiment and embrace new challenges was crucial to its development. In the same way, open-mindedness and a willingness to push boundaries are essential in AI, where curiosity and serendipity often lead to breakthrough innovations.
Practical Application:
In any project, be open to new challenges and ideas. Don’t be afraid to experiment and push the boundaries of what’s possible. If you stumble upon something interesting, see where it goes! This applies especially to AI, where new advancements are being made all the time, and the field is constantly evolving.
5. Be mindful of the ethical implications of technology.
My skepticism towards some applications of technology, especially those driven by greed or control, underscores the importance of ethical considerations in technology development. The development of ethical AI should be driven not by greed or profit, but by a desire to create something beneficial for society as a whole. AI should be open and inclusive, allowing for diverse perspectives and participation. This is similar to the open-source model in software development, which has proven to be a highly effective way to create high-quality, innovative products.
Practical Application:
As AI becomes increasingly pervasive in our lives, it’s critical to ensure that it serves humanity’s best interests. Avoid using AI to manipulate or control individuals or exert undue influence. Foster transparency and collaboration to avoid potential misuses of technology, and ensure that everyone can participate and contribute to its development.
Memorable Quotes
Introduction. 9
During the euphoria of the final years of the twentieth century, a revolution was happening among all the other revolutions.
Birth of an Operating System. 58
My code is always, um, perfect.
The Beauty of Programming. 84
Within the confines of the computer, you’re the creator. You get to ultimately control everything that happens. If you’re good enough, you can be God. On a small scale.
Minix vs. Linux. 104
Greed is never good.
Why Open Source Makes Sense. 210
Open source is about letting everybody play.
Introduction. 9
During the euphoria of the final years of the twentieth century, a revolution was happening among all the other revolutions.
Birth of an Operating System. 58
My code is always, um, perfect.
The Beauty of Programming. 84
Within the confines of the computer, you’re the creator. You get to ultimately control everything that happens. If you’re good enough, you can be God. On a small scale.
Minix vs. Linux. 104
Greed is never good.
Why Open Source Makes Sense. 210
Open source is about letting everybody play.
Comparative Analysis
Compared to other tech autobiographies or histories of computing, “Just for Fun” stands out for its highly personal and candid tone. Unlike the often dry and technical accounts found in similar books, this one focuses heavily on the human element of the Linux story. While books like “Accidental Empires” by Robert X. Cringely provide a broader overview of the PC revolution, “Just for Fun” offers a unique, insider perspective on the development of a groundbreaking operating system and the open-source movement. Furthermore, in contrast to more business-focused narratives like “The Innovator’s Dilemma” by Clayton Christensen, my book delves deep into the technical challenges and design decisions behind Linux, offering a valuable lesson on how technology evolves through community and passion. A major difference is also the focus on the philosophy of programming and the joy of creation, which sets it apart from purely historical accounts.
Reflection
Looking back, the Linux story is a potent example of how unintended consequences can shape the future of technology. IBM’s decision to open up the PC architecture, though not driven by open source ideals, inadvertently fueled the growth of the open-source movement and enabled Linux to flourish. While some may argue that my disinterest in fame and fortune is unrealistic or even disingenuous, I maintain that passion, not profit, was the primary driver behind Linux’s creation and evolution. Although the book focuses on the technical and social aspects of Linux’s development, it also reveals a deeper truth about how technology can be used to create community, empower individuals, and ultimately make the world a slightly better place. However, it is important to be skeptical about the idea of a purely meritocratic open-source system. Bias and power dynamics undoubtedly exist, even in decentralized communities. Furthermore, my simplistic “theory of life” may not fully capture the complexity of human motivation, though it provides a useful framework for understanding how societies and technology interact. Perhaps a more nuanced discussion of these issues could strengthen the book’s overall impact. Despite these shortcomings, “Just for Fun” remains a valuable and highly entertaining read for anyone interested in technology, innovation, and the open source movement.
Flashcards
What are the three motivational factors of Linus’s Law?
Survival, social order, entertainment.
When was Linux version 0.01 released?
September 17, 1991.
How was Linus Torvalds described before his fame?
A skinny unknown, just another nerdy Helsinki techie.
What does “Torvald” mean?
“Thor’s domain”.
What was Linus Torvalds’ first computer (inherited)?
Commodore VIC-20.
What was Linus Torvalds’ second computer (purchased)?
Sinclair QL.
What is the symbol of Linux?
Tux the penguin.
What was Linus Torvalds’ stated desire in his book dedication?
To be surrounded by young women.
What did Linus Torvalds want to accomplish with his book?
To explain the meaning of life.
Who designed the Linux mascot, Tux?
Larry Ewing.
What are the three motivational factors of Linus’s Law?
Survival, social order, entertainment.
When was Linux version 0.01 released?
September 17, 1991.
How was Linus Torvalds described before his fame?
A skinny unknown, just another nerdy Helsinki techie.
What does “Torvald” mean?
“Thor’s domain”.
What was Linus Torvalds’ first computer (inherited)?
Commodore VIC-20.
What was Linus Torvalds’ second computer (purchased)?
Sinclair QL.
What is the symbol of Linux?
Tux the penguin.
What was Linus Torvalds’ stated desire in his book dedication?
To be surrounded by young women.
What did Linus Torvalds want to accomplish with his book?
To explain the meaning of life.
Who designed the Linux mascot, Tux?
Larry Ewing.